جزوه · فصل سوم · جلسه ۳۸ · ساختار دیسک در لینوکس ← بازگشت به فهرست
📘 فصل سوم · جلسه ۳۸ ساختار دیسک در لینوکس
📅 تاریخ: دوشنبه، ۲۶ مرداد ۱۴۰۵ 👤 مدرس: محمد عابدینی 🐚 Zsh · 🐧 Debian (کالی) · 📦 Red Hat
🏠 قبل از هر چیزی، یه مثال ساده:

ساختار دیسک در لینوکس رو مثل یه درخت وارونه تصور کن. ریشه (Root) در بالا قرار داره و همه چیز زیرش قرار می‌گیره. این ساختار به ما اجازه میده تا چند دیسک رو به یه شکل یکپارچه ببینیم.

▍ ساختار مجازی دایرکتوری (Virtual Directory)

لینوکس از یه ساختار مجازی برای سازماندهی فایل‌ها استفاده می‌کنه. این ساختار یه دایرکتوری ریشه (Root Directory) داره که با / نمایش داده میشه. همه چیز زیر این ریشه قرار می‌گیره، فرقی نمی‌کنه که چند تا دیسک داشته باشی.

🔑 نکته کلیدی:

توی ویندوز، هر دیسک یه حرف جداگانه داره (مثل C:, D:). ولی توی لینوکس، همه دیسک‌ها زیر یه ریشه واحد قرار می‌گیرن. مثلاً یه دیسک می‌تونه توی /home باشه و دیسک دیگه توی /var.

▍ تقسیم ساختار بین چند دیسک

فرض کن دو تا دیسک داری. می‌تونی یه دیسک رو به / (ریشه) اختصاص بدی و دیسک دوم رو به /home یا هر جای دیگه. این کار بهت کمک می‌کنه تا بهتر مدیریت کنی.

📁 مثال:
  • دیسک اول (Hard Drive 1): / (ریشه) + /bin + /etc + /home
  • دیسک دوم (Hard Drive 2): /barbarba + /katie + /jessica + /rich

این یعنی دایرکتوری‌های دیسک دوم هم زیر ریشه قرار می‌گیرن و کاربر اصلاً متوجه نمیشه که دو دیسک جدا داره.

▍ شاخه‌های معروف در لینوکس (FHS)

FHS (Filesystem Hierarchy Standard) یه استاندارده که می‌گه هر دایرکتوری چه کاربردی داره. اینطوری همه توزیع‌ها یه ساختار مشابه دارن.

/boot

فایل‌های بوت لودر (GRUB) و هسته

/etc

فایل‌های تنظیمات سیستم و برنامه‌ها

/home

دایرکتوری کاربران (فایل‌های شخصی)

/media

نقطه اتصال برای دستگاه‌های قابل حمل (USB، CD)

/mnt

نقطه اتصال موقت برای دیسک‌ها

/opt

برنامه‌های شخص ثالث (مثل Google Chrome)

/tmp

فایل‌های موقت (با هر ری‌بوت پاک میشن)

/usr

برنامه‌های اصلی سیستم

/usr/bin

دستورات قابل اجرا برای کاربران

/usr/local

برنامه‌های نصب‌شده محلی

/usr/sbin

دستورات مدیریتی برای روت

/var

فایل‌های متغیر (لاگ‌ها، کش، ایمیل‌ها)

▍ انواع سیستم فایل در لینوکس

لینوکس از سیستم‌فایل‌های مختلفی پشتیبانی می‌کنه. هر کدوم برای کار خاصی طراحی شدن.

💡 نکته:

برای دیدن سیستم‌فایل یک پارتیشن، از دستور df -T استفاده کن.

▍ دو روش برای Mount کردن پارتیشن‌ها

• روش اول: موقت با mount

با دستور mount می‌تونی یه پارتیشن رو به یه دایرکتوری متصل کنی. این روش تا ری‌بوت بعدی موندگاره.

┌──(ya3in㉿kali)-[~] └─$ sudo mount /dev/sdb1 /mnt/mydisk

توضیح: پارتیشن /dev/sdb1 رو به دایرکتوری /mnt/mydisk متصل می‌کنه.

• روش دوم: دائمی با /etc/fstab

با اضافه کردن یه خط به فایل /etc/fstab، پارتیشن در زمان بوت به‌طور خودکار Mount میشه.

┌──(ya3in㉿kali)-[~] └─$ sudo nano /etc/fstab

خط زیر رو به انتهای فایل اضافه کن:

/dev/sdb1 /mnt/mydisk ext4 defaults 0 0

توضیح: این خط به سیستم می‌گه که /dev/sdb1 رو با سیستم‌فایل ext4 به /mnt/mydisk در زمان بوت Mount کنه.

⚠️ توجه:

قبل از ویرایش /etc/fstab، با sudo mount -a خطوط جدید رو تست کن. اگه خطا داشت، قبل از ری‌بوت درستش کن.

▍ ابزارهای نمایش وضعیت دیسک

df (Disk Free)

فضای استفاده‌شده و آزاد هر پارتیشن رو نمایش میده.

┌──(ya3in㉿kali)-[~] └─$ df -h Filesystem Size Used Avail Use% Mounted on /dev/sda1 40G 12G 26G 32% / /dev/sdb1 100G 45G 55G 45% /home

توضیح: -h یعنی Human-readable (قابل فهم برای انسان).

du (Disk Usage)

اندازه دایرکتوری‌ها رو نمایش میده. برای پیدا کردن پوشه‌های بزرگ خیلی مفیده.

┌──(ya3in㉿kali)-[~] └─$ du -sh /home/* 1.2G /home/ya3in 450M /home/user1 8.0K /home/user2

توضیح: -s خلاصه (مجموع)، -h قابل فهم برای انسان.

iostat (I/O Statistics)

آمار ورودی/خروجی دیسک‌ها رو به‌صورت لحظه‌ای نمایش میده.

┌──(ya3in㉿kali)-[~] └─$ iostat -x 2

توضیح: -x اطلاعات دقیق، 2 یعنی هر ۲ ثانیه به‌روز کن.

⚠️ نکته:

برای نصب iostat در دبیان/کالی:

┌──(ya3in㉿kali)-[~] └─$ sudo apt install sysstat

lsblk (List Block Devices)

ساختار دیسک‌ها و پارتیشن‌ها رو به صورت درختی نمایش میده.

┌──(ya3in㉿kali)-[~] └─$ lsblk NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINTS nvme0n1 259:0 0 476.9G 0 disk ├─nvme0n1p1 259:1 0 260M 0 part ├─nvme0n1p2 259:2 0 16M 0 part ├─nvme0n1p3 259:3 0 375.8G 0 part ├─nvme0n1p4 259:4 0 1.2G 0 part ├─nvme0n1p5 259:5 0 977M 0 part /boot/efi ├─nvme0n1p6 259:6 0 38G 0 part / └─nvme0n1p7 259:7 0 2.1G 0 part [SWAP]

توضیح: lsblk همه دیسک‌ها و پارتیشن‌ها رو با اندازه و نقطه اتصال نمایش میده.

▍ جدول خلاصه ابزارهای نمایش وضعیت

دستور کاربرد مثال
df -h نمایش فضای استفاده‌شده پارتیشن‌ها df -h /home
du -sh نمایش اندازه دایرکتوری‌ها du -sh /var/*
iostat -x آمار لحظه‌ای I/O دیسک iostat -x 5
lsblk نمایش ساختار دیسک‌ها lsblk -f
✅ تمرین برای تثبیت:
  • با df -h فضای آزاد پارتیشن‌ها رو ببین.
  • با du -sh /home/* اندازه دایرکتوری‌های کاربران رو چک کن.
  • با lsblk ساختار دیسک‌های خودت رو مشاهده کن.
  • یه پارتیشن رو به /mnt/test Mount کن و بعد با umount جدا کن.